// 闭包
// for (var i = 0; i < 10; i++) {
//   setTimeout(function() {
//     console.log(i)
//   },500);
// }

// for (var i = 0; i < 10; i++) {
//   function timer() {  
//     var index = i;
//     setTimeout(function() {
//       console.log(index)
//     },500);
//   }
//   timer();
// }

// var btn = document.getElementById('btn');

// 事件阻塞
// function debounce(fn,index) {
//   var timer;
//   return function() {
//     clearTimeout(timer);
//     timer = setTimeout(function() { 
//       fn.call(this, index)
//     },2000)
//   }
// }

// function fn(index) {
//   console.log(index+1);
// }

// btn.addEventListener('click', debounce(fn, 1));

// 面向对象
function Person(name, age, tall) {
  this.name = name;
  this.age = age;
  this.tall = tall;
  this.work = 'WebDevelopment';
}

Person.prototype.writeInfo = function() {
  return {
    name: this.name,
    age: this.age,
  }
}

function Another(name, age, tall, friend) {
  Person.call(this, name, age, tall)
  this.friend = friend;
}
Another.prototype = new Person();
Another.prototype.constructor = Another;

var p1 = new Person('dz', 24, 178);
var p2 = new Person('jx', 25, 175);
var p3 = new Another('cy', 24, 165, 'jx')

var info1 = p1.writeInfo();
var info2 = p2.writeInfo();
var info3 = p3.writeInfo();
// console.log(p1, p2, p3);
console.log(info1, info1, info3);